Modern computers provide effective tools for producing animated movies. Computerized animation techniques provide many advantages over conventional pen-and-ink animation. For example, conventional animation requires that each cell or frame in an animated sequence be drawn and inked individually. This requires painstaking attention to detail in order to ensure that each object, such as the animated scenery and actors, appear consistent from one cell to the next.
Computer animation solves these problems because once an object is drawn, it can be repeated from cell to cell quickly, and without any variation. Likewise, computers employ a variety of three-dimensional (3D) rendering techniques in order to represent 3D objects, such as actors, which change position or location from one cell to the next.
Simple graphics applications use wire frame drawings to connect points along the surface of a 3D object in order to visually represent surface details of a 3D object. Wire frames give the computer user a sense of depth perception, while minimizing the amount of surface detail in order to reduce the computer processing capacity required to represent and manipulate the 3D object. Although wire frames may be used to effectively represent some 3D objects, the lack of detailed surface attributes may result in the 3D object having an unrealistic or confusing appearance.
Ray tracing is a 3D graphical technique that has been used to render much more detailed and realistic representations of 3D objects. Essentially, ray tracing is a complex method of producing shadows, reflections, and refractions in three dimensions. Ray tracing calculates the brightness, the reflectivity, and the level of transparency of the object by tracing light backwards from the viewer's eye to the object from which light bounced off. By using more complex graphical techniques, such as ray tracing, a computer user can create an image of a 3D object and provide a great amount of graphical detail.
Although computer animation effectively addresses many of the difficulties associated with traditional animation techniques, it introduces various considerations of its own. For example, the input devices associated with most computers include a keyboard and a pointing device, such as a mouse. Although a mouse provides input in only two dimensions, 3D animation typically requires that the object be moved in at least four dimensions, including movement along the x, y, and z axes, and rotation about the vertical axis (i.e., the y-axis). Prior art methods have addressed this problem by using keyboard input (e.g., the arrow keys) to control movement in the third or fourth dimensions. For example, the mouse may be used to move the object from right to left (x-axis) and front to back (z-axis), while the up/down and left/right arrow keys are used to move the object vertically (y-axis) and rotate the object about the y-axis, respectively. Although these solutions allow the user to move the object as needed, they do not provide a simple, effective interface for moving the object in three or more dimensions. In order to provide a simple, effective user interface, it is desirable to place the object in the x-z plane and orient the object about the y-axis using only input from the mouse. Therefore, there is a need in the art for an improved method for placing and orienting an object.
In computer animation, it is necessary for the program to record where the specific actions or events performed by the object are supposed to take place. A computer animated movie, like any other linear story, has the concept of time associated with it. A frame in a digital movie represents a snapshot of the animated objects (scene, actors, etc.) in time as it would in actual film. The movie is replayed by replaying all the events for each frame in each scene.
In light of this fact, an approach used in prior art computer animation is to match the events to the frames of the movie, i.e., to make the events time-based. Although this approach works well when recording the initial path and events, it produces unsatisfactory results when the original movie is edited. In an example where the animated object is an actor, the actor may run into a room in frames 1-20, and sit down on a chair in frames 21-23 in the original sequence. If the user wishes to change the initial action from a run to a walk along that same path, in a model in which events are bound to frames, the actor would be approximately midway to the chair by frame 21 and would sit down in space long before he reached the chair. Therefore, there is a need for a method of recording the path of an object and events performed by the object that facilitates editing and maintains the proper relationship between the events and the object's position along a path.
An example of an event that may be performed by an object is changing the appearance of an animated object. In the context of traditional theater and motion picture productions, it is common for actors to change costumes during and between scenes. Selecting costumes is a crucial part of any theatrical production. Similarly, changing the appearance of an animated object can help tell a story more effectively.
In the realm of computer animation, changing an object's appearance or attributes is very different than the real world of shrugging off a robe, wiping off makeup, and reappearing from the dressing room with a new look. During the process of making a computer animated movie, changing an object's appearance or attributes can involve making intricate changes to the attributes of the object. A great deal of attention must be paid to how dull or shiny is the surface of the object or its parts, what color is the object or its parts, the shape of the object and what detail or texture is mapped to the surface of the object. In order to change the appearance or attributes of an object, the three-dimensional surface of the object must be painstakingly analyzed, changed if desired, and redrawn by the computer. This process is repeated for every surface of the animated object with multiple user interface operations.
This process is a very flexible way to change the appearance of a computer animated object. However, the process can be complex and extremely time intensive. It requires a great deal of skill by the user to understand the graphical manipulations required to change the attributes of each individual part of the object. Therefore, there is a need for a simple, intuitive and efficient process for changing the appearance of an object.
In summary, there is a need in the art for an improved method of placing and orienting an object using only two-dimensional input from a mouse. Additionally, there is a need for a method of recording the location of an object and events performed by the object that facilitates editing and maintains the proper relationship between the events and the object's location. Finally, there is a need for a simple, intuitive and efficient method for changing the appearance of an object.